home *** CD-ROM | disk | FTP | other *** search
Wrap
/* -- ANSI C code generated by : -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82) -- -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE -- -- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr -- -- http://www.loria.fr/SmallEiffel -- */ #include "pretty.h" int r818a_feature_name(T818* C){ int R=0; /*IF*/if (r818a_prefix(C)) { C->_last_feature_name=(((T818*)C))->_last_prefix/*125*/; R=1; } else if (r818a_infix(C)) { C->_last_feature_name=(((T818*)C))->_last_infix/*121*/; R=1; } else if (r818a_identifier(C)) { C->_last_feature_name=r511to_simple_feature_name(((T511*)(oBC818tmp_name))); R=1; } /*FI*/return R; } /*No:EIFFEL_PARSER.us_and*/ void r818a_feature_clause(T818* C){ T0* _comment=NULL; T0* _clients=NULL; T0* _feature_clause=NULL; _clients=r818a_clients(C); _comment=r818get_comments(C); /*[IRF3.3clear*/((((T352*)(((T352*)(oBC818faof)))))->_upper)=(-(1)); /*]*/ while (!(!(r818a_feature_declaration(C)))) { C->_ok=r818skip1(C,'\73'); /*IF*/if (((((T818*)C))->_last_feature_declaration/*101*/)!=((void*)(NULL))) { r352add_last(((T352*)(oBC818faof)),(((T818*)C))->_last_feature_declaration/*101*/); X359set_header_comment((((T818*)C))->_last_feature_declaration/*101*/,r818get_comments(C)); } /*FI*/} /*IF*/if (((((T352*)((T352*)(oBC818faof))))->_upper/*8*/)>=(0)) { {T153*n=malloc(sizeof(*n)); *n=M153; r153make(n,_clients,_comment,r352twin(((T352*)(oBC818faof)))); _feature_clause=(T0*)n; } r605add_feature_clause(((T605*)((((T818*)C))->_last_base_class/*65*/)),_feature_clause); } else if ((_comment)!=((void*)(NULL))) { {T153*n=malloc(sizeof(*n)); *n=M153; r153make(n,_clients,_comment,NULL); _feature_clause=(T0*)n; } r605add_feature_clause(((T605*)((((T818*)C))->_last_base_class/*65*/)),_feature_clause); } /*FI*/C->_last_keyword=NULL; } /*No:EIFFEL_PARSER.in_rescue*/ /*No:EIFFEL_PARSER.us_and_then*/ int r818a_manifest_constant(T818* C){ int R=0; /*IF*/if (r818a_boolean_constant(C)) { C->_last_manifest_constant=(((T818*)C))->_last_boolean_constant/*81*/; R=1; } else if (r818a_character_constant(C)) { C->_last_manifest_constant=(((T818*)C))->_last_character_constant/*85*/; R=1; } else if (r818a_manifest_string(C)) { C->_last_manifest_constant=(((T818*)C))->_last_manifest_string/*145*/; R=1; } else if (r818a_bit_constant(C)) { C->_last_manifest_constant=(((T818*)C))->_last_bit_constant/*77*/; R=1; } else if (r818a_real_constant(C)) { C->_last_manifest_constant=(((T818*)C))->_last_real_constant/*153*/; R=1; } else if (r818a_integer_constant(C)) { C->_last_manifest_constant=(((T818*)C))->_last_integer_constant/*129*/; R=1; } /*FI*/return R; } /*No:EIFFEL_PARSER.last_instruction*/ int r818a_bit_constant(T818* C){ int R=0; int _state=0; int _c=0; int _l=0; /*IF*/if ((((((T818*)C))->_cc/*24*/)==('0'))||(((((T818*)C))->_cc/*24*/)==('1'))) { _l=(((T818*)C))->_line/*16*/; _c=(((T818*)C))->_column/*12*/; /*[IRF3.3clear*/((((T7*)(((T7*)(oBC818tmp_string)))))->_count)=(0); /*]*/ r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/); while (!((_state)>(0))) { r818next_char(C); {int z1=(((T818*)C))->_cc/*24*/; if(((48<=z1)&&(z1<=49))){ r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/); } else if((66==z1)||(98==z1)){ {T940*n=malloc(sizeof(*n)); *n=M940; r940make(n,r818pos(_l,_c),r7twin(((T7*)(oBC818tmp_string)))); C->_last_bit_constant=(T0*)n; } r818next_char(C); r818skip_comments(C); _state=1; R=1; } else{r818go_back_at(C,_l,_c); _state=2; }} } } /*FI*/return R; } T0*oBC818faof=NULL; /*No:EIFFEL_PARSER.fz_jvm_invokestatic*/ int r818a_index_clause(T818* C){ int R=0; T0* _index_clause=NULL; /*IF*/if (r818a_identifier(C)) { R=1; /*IF*/if (r818skip1(C,'\72')) { {T782*n=malloc(sizeof(*n)); *n=M782; /*[IRF3.3make*/((((T782*)(n)))->_index)=(r511to_string(((T511*)(oBC818tmp_name)))); /*]*/ _index_clause=(T0*)n; } /*IF*/if (r818a_index_value(C)) { r782add_index_value(((T782*)_index_clause),(((T818*)C))->_last_index_value/*137*/); } else { r818fcp(C,((T0*)ms141_818)); } /*FI*/} else { {T782*n=malloc(sizeof(*n)); *n=M782; /*[IRF3.3make*/((((T782*)(n)))->_index)=(NULL); /*]*/ _index_clause=(T0*)n; } r782add_index_value(((T782*)_index_clause),r511to_simple_feature_name(((T511*)(oBC818tmp_name)))); } /*FI*/} else if (r818a_manifest_constant(C)) { R=1; {T782*n=malloc(sizeof(*n)); *n=M782; /*[IRF3.3make*/((((T782*)(n)))->_index)=(NULL); /*]*/ _index_clause=(T0*)n; } r782add_index_value(((T782*)_index_clause),(((T818*)C))->_last_manifest_constant/*141*/); } /*FI*//*IF*/if (R) { while (!(!(r818skip1(C,'\54')))) { /*IF*/if (r818a_index_value(C)) { r782add_index_value(((T782*)_index_clause),(((T818*)C))->_last_index_value/*137*/); } else { r818fcp(C,((T0*)ms141_818)); } /*FI*/} r605add_index_clause(((T605*)((((T818*)C))->_last_base_class/*65*/)),_index_clause); } /*FI*/return R; } /*No:EIFFEL_PARSER.line*/ /*No:EIFFEL_PARSER.make*/ /*No:EIFFEL_PARSER.last_index_value*/ /*No:EIFFEL_PARSER.show_nb_warnings*/ /*No:EIFFEL_PARSER.fz_rescue*/ int r818a_infix(T818* C){ int R=0; T0* _sp=NULL; /*IF*/if (r818a_keyword(C,((T0*)ms23_470))) { R=1; {T627*n=malloc(sizeof(*n)); *n=M627; r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/); _sp=(T0*)n; } /*IF*/if (((((T818*)C))->_cc/*24*/)==('\42')) { r818next_char(C); } else { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms96_818); r818warning(r818current_position(C1),b1); }/*]*/ } /*FI*//*IF*/if (r818a_binary(C,_sp)) { C->_last_infix=(((T818*)C))->_last_binary/*73*/; } else if (r818a_free_operator(C)) { C->_last_infix=r511to_infix_name(_sp); } else { r818fcp(C,((T0*)ms97_818)); } /*FI*//*IF*/if (!(r818skip1(C,'\42'))) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms98_818); r818warning(r818current_position(C1),b1); }/*]*/ } /*FI*/} /*FI*/return R; } T0* r818a_actuals(T818* C){ T0* R=NULL; T0* _args=NULL; /*IF*/if (r818skip1(C,'\50')) { while (!(!(r818a_actual(C)))) { /*IF*/if ((_args)==((void*)(NULL))) { _args=se_ma96(1,(((T818*)C))->_last_expression/*97*/); } else { X96add_last(_args,(((T818*)C))->_last_expression/*97*/); } /*FI*//*IF*/if ((!(r818skip1(C,'\54')))&&(((((T818*)C))->_cc/*24*/)!=('\51'))) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms143_818); r818warning(r818current_position(C1),b1); }/*]*/ } /*FI*/} /*IF*/if ((_args)==((void*)(NULL))) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms31_818); r818warning(r818current_position(C1),b1); }/*]*/ } else { {T431*n=malloc(sizeof(*n)); *n=M431; /*[IRF3.3make*/((((T431*)(n)))->_list)=(_args); /*]*/ R=(T0*)n; } } /*FI*//*IF*/if (!(r818skip1(C,'\51'))) { r818fcp(C,((T0*)ms32_818)); } /*FI*/} /*FI*/return R; } /*No:EIFFEL_PARSER.us_pointer*/ /*No:EIFFEL_PARSER.fz_iinaiv*/ int r818a_actual(T818* C){ int R=0; /*IF*/if (r818skip1(C,'\44')) { /*IF*/if (r818a_identifier(C)) { /*IF*/if (((r818a_result(C))||(r818a_void(C)))||(r818a_current(C))) { r683add_position(X662start_position((((T818*)C))->_last_expression/*97*/)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms155_818); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } else { {T708*n=malloc(sizeof(*n)); *n=M708; /*[IRF3.3make*/((((T708*)(n)))->_feature_name)=(r511to_simple_feature_name(((T511*)(oBC818tmp_name)))); /*]*/ C->_last_expression=(T0*)n; } R=1; } /*FI*/} else { r818fcp(C,((T0*)ms155_818)); } /*FI*/} else if (r818a_expression(C)) { R=1; } /*FI*/return R; } /*No:EIFFEL_PARSER.us_string*/ /*No:EIFFEL_PARSER.local_vars*/ void r818a_base_class_name1(T818* C){ T0* _ccn=NULL; int _do_warning=0; int _state=0; _ccn=(((T605*)((T605*)((((T818*)C))->_last_base_class/*65*/))))->_base_class_name/*24*/; /*IF*/if (r3is_letter((((T818*)C))->_cc/*24*/)) { r627set_line_column(((T627*)((((T451*)((T451*)_ccn)))->_start_position/*4*/)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/); r511initialize(((T511*)(oBC818tmp_name)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/); /*IF*/if ((((unsigned)((((T818*)C))->_cc/*24*/))>=((unsigned)('a')))) { _do_warning=1; C->_cc=r3to_upper((((T818*)C))->_cc/*24*/); } /*FI*//*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/; r7extend(((T7*)(oBC511tmp_string)),b1); }/*]*/ while (!((_state)>(0))) { r818next_char(C); {int z1=(((T818*)C))->_cc/*24*/; if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)){ /*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/; r7extend(((T7*)(oBC511tmp_string)),b1); }/*]*/ } else if(((97<=z1)&&(z1<=122))){ _do_warning=1; /*[IRF3.6extend*/{char b1=r3to_upper((((T818*)C))->_cc/*24*/); r7extend(((T7*)(oBC511tmp_string)),b1); }/*]*/ } else{_state=1; }} } r818skip_comments(C); /*IF*/if (r511isa_keyword()) { r683add_position((((T451*)((T451*)_ccn)))->_start_position/*4*/); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms154_818); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*//*IF*/if (_do_warning) { r818warning((((T451*)((T451*)_ccn)))->_start_position/*4*/,((T0*)ms153_818)); } /*FI*/r451identify(((T451*)_ccn),r511to_string(((T511*)(oBC818tmp_name)))); } else { r818fcp(C,((T0*)ms154_818)); } /*FI*//*IF*/if (r52fast_has(((T52*)(oBC818forbidden_class)),(((T451*)((T451*)_ccn)))->_to_string/*0*/)) { r683add_position((((T451*)((T451*)_ccn)))->_start_position/*4*/); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms25_818); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/} int r818a_strip(T818* C){ int R=0; T0* _sp=NULL; /*IF*/if (r818a_keyword(C,((T0*)ms45_470))) { {T627*n=malloc(sizeof(*n)); *n=M627; r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/); _sp=(T0*)n; } /*IF*/if (r818skip1(C,'\50')) { C->_ok=r818a_feature_list(C); {T420*n=malloc(sizeof(*n)); *n=M420; r420make(n,_sp,(((T818*)C))->_last_feature_list/*105*/); C->_last_expression=(T0*)n; } /*IF*/if (!(r818skip1(C,'\51'))) { r818fcp(C,((T0*)ms123_818)); } /*FI*/R=1; } else { r818fcp(C,((T0*)ms124_818)); } /*FI*/} /*FI*/return R; } /*No:EIFFEL_PARSER.fz_external*/ T0* r818a_compound1(T818* C,T0* a1){ T0* R=NULL; T0* _instruction=NULL; T0* _list=NULL; T0* _hc=NULL; _hc=r818get_comments(C); while (!(((((T818*)C))->_cc/*24*/)!=('\73'))) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms68_470); r818warning(r818current_position(C1),b1); }/*]*/ C->_ok=r818skip1(C,'\73'); } while (!((!(r818a_instruction(C)))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) { _instruction=(((T818*)C))->_last_instruction/*133*/; /*IF*/if (((((T818*)C))->_cc/*24*/)==('\50')) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms144_818); r818warning(r818current_position(C1),b1); }/*]*/ } /*FI*/C->_ok=r818skip1(C,'\73'); while (!(((((T818*)C))->_cc/*24*/)!=('\73'))) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms68_470); r818warning(r818current_position(C1),b1); }/*]*/ C->_ok=r818skip1(C,'\73'); } /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { /*IF*/if ((_list)==((void*)(NULL))) { _list=se_ma419(1,X465add_comment(_instruction,r818get_comments(C))); } else { r419add_last(((T419*)_list),X465add_comment(_instruction,r818get_comments(C))); } /*FI*/} /*FI*/} /*IF*/if (((_hc)!=((void*)(NULL)))||((_list)!=((void*)(NULL)))) { {T592*n=malloc(sizeof(*n)); *n=M592; r592make(n,_hc,_list); R=(T0*)n; } } /*FI*/return R; } /*No:EIFFEL_PARSER.fz_prefix*/ /*No:EIFFEL_PARSER.fz_all*/ /*No:EIFFEL_PARSER.column*/ int r818a_loop(T818* C){ int R=0; T0* _al=NULL; T0* _hc=NULL; T0* _lb=NULL; T0* _ue=NULL; T0* _vc=NULL; T0* _ic=NULL; T0* _i=NULL; T0* _e_loop=NULL; int _c2=0; int _l2=0; int _c1=0; int _l1=0; /*IF*/if (r818a_keyword(C,((T0*)ms19_470))) { R=1; _l1=(((T818*)C))->_start_line/*169*/; _c1=(((T818*)C))->_start_column/*165*/; _i=r818a_compound1(C,((T0*)ms102_818)); /*IF*/if (r818a_keyword(C,((T0*)ms26_470))) { _l2=(((T818*)C))->_start_line/*169*/; _c2=(((T818*)C))->_start_column/*165*/; _hc=r818get_comments(C); _al=r818a_assertion(C); /*IF*/if (((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))) { {T213*n=malloc(sizeof(*n)); *n=M213; r213make(n,r818pos(_l2,_c2),_hc,_al); _ic=(T0*)n; } } /*FI*/} /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms51_470))) { /*IF*/if ((r818a_tag_mark(C))&&(r818a_expression(C))) { {T158*n=malloc(sizeof(*n)); *n=M158; r158make(n,(((T818*)C))->_last_tag_mark/*161*/,(((T818*)C))->_last_expression/*97*/,r818get_comments(C)); _vc=(T0*)n; } } else if (r818a_expression(C)) { {T145*n=malloc(sizeof(*n)); *n=M145; r145make(n,(((T818*)C))->_last_expression/*97*/,r818get_comments(C)); _vc=(T0*)n; } } else { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms103_818); r818warning(r818current_position(C1),b1); }/*]*/ } /*FI*/} /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms50_470))) { /*IF*/if (r818a_expression(C)) { _ue=X662add_comment((((T818*)C))->_last_expression/*97*/,r818get_comments(C)); } else { r818fcp(C,((T0*)ms104_818)); _ue=(((T818*)C))->_last_expression/*97*/; } /*FI*/} else { r818fcp(C,((T0*)ms105_818)); _ue=(((T818*)C))->_last_expression/*97*/; } /*FI*//*IF*/if (((((T818*)C))->_cc/*24*/)==('\73')) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms68_470); r818warning(r818current_position(C1),b1); }/*]*/ C->_ok=r818skip1(C,'\73'); } /*FI*//*IF*/if (!(r818a_keyword(C,((T0*)ms32_470)))) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms106_818); r818warning(r818current_position(C1),b1); }/*]*/ } /*FI*/_lb=r818a_compound2(C,((T0*)ms107_818),((T0*)ms12_470)); {T880*n=malloc(sizeof(*n)); *n=M880; r880make(n,r818pos(_l1,_c1),_i,_ic,_vc,_ue,_lb); _e_loop=(T0*)n; } C->_last_instruction=_e_loop; } /*FI*/return R; } /*No:EIFFEL_PARSER.fz_feature*/ /*No:EIFFEL_PARSER.fz_true*/ int r818a_local_variable(T818* C){ int R=0; int _rank=0; /*IF*/if (((((T818*)C))->_local_vars/*49*/)!=((void*)(NULL))) { _rank=r620rank_of(((T620*)((((T818*)C))->_local_vars/*49*/)),r511to_string(((T511*)(oBC818tmp_name)))); /*IF*/if ((_rank)>(0)) { C->_last_expression=r511to_local_name2(((T511*)(oBC818tmp_name)),(((T818*)C))->_local_vars/*49*/,_rank); R=1; } /*FI*/} /*FI*/return R; } /*No:EIFFEL_PARSER.start_column*/ /*No:EIFFEL_PARSER.us_ge*/ /*No:EIFFEL_PARSER.us_neq*/ T0*oBC364echo=NULL; int r818skip1unless2(T818* C,char a1,char a2){ int R=0; C->_start_line=(((T818*)C))->_line/*16*/; C->_start_column=(((T818*)C))->_column/*12*/; /*IF*/if (((((T818*)C))->_cc/*24*/)==(a1)) { r818next_char(C); /*IF*/if (((((T818*)C))->_cc/*24*/)==(a2)) { r818prev_char(C); } else { R=1; r818skip_comments(C); } /*FI*/} /*FI*/return R; } /*No:EIFFEL_PARSER.fz_if*/ T0* r818a_compound2(T818* C,T0* a1,T0* a2){ T0* R=NULL; T0* _instruction=NULL; T0* _list=NULL; T0* _hc=NULL; _hc=r818get_comments(C); while (!(((((T818*)C))->_cc/*24*/)!=('\73'))) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms68_470); r818warning(r818current_position(C1),b1); }/*]*/ C->_ok=r818skip1(C,'\73'); } while (!((!(r818a_instruction(C)))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) { _instruction=(((T818*)C))->_last_instruction/*133*/; /*IF*/if (((((T818*)C))->_cc/*24*/)==('\50')) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms144_818); r818warning(r818current_position(C1),b1); }/*]*/ } /*FI*/C->_ok=r818skip1(C,'\73'); while (!(((((T818*)C))->_cc/*24*/)!=('\73'))) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms68_470); r818warning(r818current_position(C1),b1); }/*]*/ C->_ok=r818skip1(C,'\73'); } /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { /*IF*/if ((_list)==((void*)(NULL))) { _list=se_ma419(1,X465add_comment(_instruction,r818get_comments(C))); } else { r419add_last(((T419*)_list),X465add_comment(_instruction,r818get_comments(C))); } /*FI*/} /*FI*/} /*IF*/if (!(r818a_keyword(C,a2))) { /*[IRF3.6append*/{T0* b1=((T0*)ms57_818); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=a1; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms58_818); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=a2; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r818fcp(C,((T0*)ms59_818)); } /*FI*//*IF*/if (((_hc)!=((void*)(NULL)))||((_list)!=((void*)(NULL)))) { {T592*n=malloc(sizeof(*n)); *n=M592; r592make(n,_hc,_list); R=(T0*)n; } } /*FI*/return R; } int r818a_rename_pair(T818* C){ int R=0; T0* _rename_pair=NULL; T0* _name1=NULL; /*IF*/if (r818a_feature_name(C)) { _name1=(((T818*)C))->_last_feature_name/*109*/; /*IF*/if (r818a_keyword(C,((T0*)ms3_470))) { /*IF*/if (r818a_feature_name(C)) { R=1; {T498*n=malloc(sizeof(*n)); *n=M498; r498make(n,_name1,(((T818*)C))->_last_feature_name/*109*/); _rename_pair=(T0*)n; } r877add_rename(((T877*)((((T818*)C))->_last_parent/*149*/)),_rename_pair); } else { r818fcp(C,((T0*)ms113_818)); } /*FI*/} else { /*[IRF3.6go_back*/{T818* C1=C; T0* b1=X776start_position(_name1); r818go_back_at(C1,/*(IRF4.6line*/((((T627*)((T627*)b1)))->_mem_line_column/*4*/)/(1000)/*)*/,/*(IRF4.6column*/((((T627*)((T627*)b1)))->_mem_line_column/*4*/)%(1000)/*)*/); }/*]*/ } /*FI*/} /*FI*/return R; } /*No:EIFFEL_PARSER.us_slash*/ /*No:EIFFEL_PARSER.fz_alias*/ /*No:EIFFEL_PARSER.fz_debug*/ int r818a_keyword(T818* C,T0* a1){ int R=0; int _keyword_count=0; int _i=0; _keyword_count=(((T7*)((T7*)a1)))->_count/*4*/; C->_start_line=(((T818*)C))->_line/*16*/; C->_start_column=(((T818*)C))->_column/*12*/; while (!(((_i)==(_keyword_count))||(!(r3same_as((((T818*)C))->_cc/*24*/,/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[((_i)+(1))-(1)]/*)*/))))) { _i=(_i)+(1); r818next_char(C); } /*IF*/if ((_i)==(_keyword_count)) { {int z1=(((T818*)C))->_cc/*24*/; if(((9<=z1)&&(z1<=10))||(32==z1)||(45==z1)){ R=1; C->_last_keyword=a1; r818skip_comments(C); } else if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)||((97<=z1)&&(z1<=122))){ while (!((_i)==(0))) { r818prev_char(C); _i=(_i)-(1); } } else{R=1; C->_last_keyword=a1; }} } else { while (!((_i)==(0))) { r818prev_char(C); _i=(_i)-(1); } } /*FI*/return R; } /*No:EIFFEL_PARSER.us_character*/ /*No:EIFFEL_PARSER.us_le*/ /*No:EIFFEL_PARSER.fz_from*/ /*No:EIFFEL_PARSER.last_keyword*/ /*No:EIFFEL_PARSER.fz_unique*/ /*No:EIFFEL_PARSER.fz_loop*/ /*No:EIFFEL_PARSER.em1*/ /*No:EIFFEL_PARSER.fz_do*/ int r818a_unary(T818* C){ int R=0; /*IF*/if (r818a_keyword(C,((T0*)ms40_473))) { {T406*n=malloc(sizeof(*n)); *n=M406; r406make(n,((T0*)ms40_473),r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/)); C->_last_prefix=(T0*)n; } R=1; } else if (r818skip1(C,'\53')) { {T406*n=malloc(sizeof(*n)); *n=M406; r406make(n,((T0*)ms43_473),r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/)); C->_last_prefix=(T0*)n; } R=1; } else if (r818skip1(C,'\55')) { {T406*n=malloc(sizeof(*n)); *n=M406; r406make(n,((T0*)ms37_473),r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/)); C->_last_prefix=(T0*)n; } R=1; } /*FI*/return R; } /*No:EIFFEL_PARSER.em2*/ /*No:EIFFEL_PARSER.last_feature_declaration*/ /*No:EIFFEL_PARSER.em3*/ /*No:EIFFEL_PARSER.fz_c_inlinewithoutcurrent*/ /*No:EIFFEL_PARSER.fz_obsolete*/ /*No:EIFFEL_PARSER.em4*/ /*No:EIFFEL_PARSER.fz_se*/ void r818go_back_at(T818* C,int a1,int a2){ C->_line=a1; C->_column=a2; C->_current_line=r676item((((T818*)C))->_line/*16*/); /*IF*/if (((((T818*)C))->_column/*12*/)==(((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)+(1))) { C->_cc='\n'; } else if (((((T818*)C))->_column/*12*/)==(0)) { C->_cc='\0'; } else { C->_cc=/*(IRF4.6item*/((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_storage/*0*/)[((((T818*)C))->_column/*12*/)-(1)]/*)*/; } /*FI*/} void r818a_ascii_code(T818* C){ int _counter=0; r818next_char(C); _counter=0; C->_last_ascii_code=0; while (!(((_counter)>(3))||(((((T818*)C))->_cc/*24*/)==('\57')))) { {int z1=(((T818*)C))->_cc/*24*/; if(((48<=z1)&&(z1<=57))){ C->_last_ascii_code=(((((T818*)C))->_last_ascii_code/*61*/)*(10))+(r3value((((T818*)C))->_cc/*24*/)); } else{r818fcp(C,((T0*)ms21_818)); }} _counter=(_counter)+(1); r818next_char(C); } /*IF*/if ((_counter)==(0)) { r818fcp(C,((T0*)ms22_818)); } else if ((_counter)>(3)) { r818fcp(C,((T0*)ms23_818)); } else { } /*FI*/} /*No:EIFFEL_PARSER.fz_as*/ /*No:EIFFEL_PARSER.em5*/ /*No:EIFFEL_PARSER.fz_false*/ /*No:EIFFEL_PARSER.us_bit*/ /*No:EIFFEL_PARSER.em6*/ int r818a_current(T818* C){ int R=0; /*IF*/if (r511is_current()) { C->_last_expression=r511to_e_current(((T511*)(oBC818tmp_name))); R=1; } /*FI*/return R; } void r818a_parent_list(T818* C,T0* a1,T0* a2){ T0* _list=NULL; while (!(!(r818a_parent(C)))) { /*IF*/if ((_list)==((void*)(NULL))) { _list=se_ma26(1,(((T818*)C))->_last_parent/*149*/); } else { r26add_last(((T26*)_list),(((T818*)C))->_last_parent/*149*/); } /*FI*/C->_ok=r818skip1(C,'\73'); /*[IRF3.3set_comment*/((((T877*)(((T877*)((((T818*)C))->_last_parent/*149*/)))))->_comment)=(r818get_comments(C)); /*]*/ } /*IF*/if (((a2)!=((void*)(NULL)))||((_list)!=((void*)(NULL)))) { /*IF*/if ((_list)==((void*)(NULL))) { /*IF*/if (((((T605*)((T605*)((((T818*)C))->_last_base_class/*65*/))))->_heading_comment2/*32*/)==((void*)(NULL))) { /*[IRF3.3set_heading_comment2*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_heading_comment2)=(a2); /*]*/ } else { r393append(((T393*)((((T605*)((T605*)((((T818*)C))->_last_base_class/*65*/))))->_heading_comment2/*32*/)),a2); } /*FI*/} else { r605set_parent_list(((T605*)((((T818*)C))->_last_base_class/*65*/)),a1,a2,_list); } /*FI*/} /*FI*/} /*No:EIFFEL_PARSER.em7*/ /*No:EIFFEL_PARSER.fz_jvm_invokevirtual*/ void r818a_select_list(T818* C){ /*IF*/if (r818a_feature_list(C)) { r877set_select(((T877*)((((T818*)C))->_last_parent/*149*/)),(((T818*)C))->_last_feature_list/*105*/); } /*FI*/} void r818err_exp(T0* a1,T0* a2){ T0* _msg=NULL; {T7*n=malloc(sizeof(*n)); *n=M7; r7make(n,0); _msg=(T0*)n; } r7append(((T7*)_msg),((T0*)ms11_818)); r7append(((T7*)_msg),a2); r7append(((T7*)_msg),((T0*)ms12_818)); r683add_position(a1); /*[IRF3.6fatal_error*/{T0* b1=_msg; r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*No:EIFFEL_PARSER.em8*/ /*No:EIFFEL_PARSER.last_boolean_constant*/ /*No:EIFFEL_PARSER.em9*/ T0* r818current_position(T818* C){ T0* R=NULL; {T627*n=malloc(sizeof(*n)); *n=M627; r627make(n,(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/); R=(T0*)n; } return R; } /*No:EIFFEL_PARSER.last_tag_mark*/ /*No:EIFFEL_PARSER.us_boolean*/ /*No:EIFFEL_PARSER.last_feature_name*/ /*No:EIFFEL_PARSER.us_eq*/ int r818a_free_operator(T818* C){ int R=0; /*IF*/if ((((((((T818*)C))->_cc/*24*/)==('\100'))||(((((T818*)C))->_cc/*24*/)==('\43')))||(((((T818*)C))->_cc/*24*/)==('\174')))||(((((T818*)C))->_cc/*24*/)==('\46'))) { R=1; r511initialize(((T511*)(oBC818tmp_name)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/); /*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/; r7extend(((T7*)(oBC511tmp_string)),b1); }/*]*/ r818next_char(C); while (!((((((((T818*)C))->_cc/*24*/)==('\n'))||(((((T818*)C))->_cc/*24*/)==('\40')))||(((((T818*)C))->_cc/*24*/)==('\11')))||(((((T818*)C))->_cc/*24*/)==('\42')))) { /*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/; r7extend(((T7*)(oBC511tmp_string)),b1); }/*]*/ r818next_char(C); } r818skip_comments(C); } /*FI*/return R; } /*No:EIFFEL_PARSER.function_type*/ int r818a_then_part(T818* C,T0* a1){ int R=0; T0* _expression=NULL; /*IF*/if (r818a_expression(C)) { R=1; _expression=X662add_comment((((T818*)C))->_last_expression/*97*/,r818get_comments(C)); /*IF*/if (!(r818a_keyword(C,((T0*)ms46_470)))) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms127_818); r818warning(r818current_position(C1),b1); }/*]*/ } /*FI*/r530add_if_then(((T530*)a1),_expression,r818a_compound1(C,((T0*)ms128_818))); } /*FI*/return R; } /*No:EIFFEL_PARSER.us_xor*/ /*No:EIFFEL_PARSER.last_integer_constant*/ /*No:EIFFEL_PARSER.in_ensure*/ /*No:EIFFEL_PARSER.fz_frozen*/ /*No:EIFFEL_PARSER.ms_numbering*/ T0* r818a_clients(T818* C){ T0* R=NULL; int _state=0; T0* _list=NULL; T0* _sp=NULL; /*IF*/if (r818skip1(C,'\173')) { {T627*n=malloc(sizeof(*n)); *n=M627; r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/); _sp=(T0*)n; } while (!((_state)>(3))) { {int z1=_state; if((0==z1)){ /*IF*/if (r818a_base_class_name(C)) { _list=se_ma901(1,(((T818*)C))->_last_class_name/*89*/); _state=2; } else if (r818skip1(C,'\175')) { _state=4; } else if (((((T818*)C))->_cc/*24*/)==('\54')) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms145_818); r818warning(r818current_position(C1),b1); }/*]*/ C->_ok=r818skip1(C,'\54'); } else { _state=3; } /*FI*/} else if((1==z1)){ /*IF*/if (r818a_base_class_name(C)) { r901add_last(((T901*)_list),(((T818*)C))->_last_class_name/*89*/); _state=2; } else if (((((T818*)C))->_cc/*24*/)==('\54')) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms145_818); r818warning(r818current_position(C1),b1); }/*]*/ C->_ok=r818skip1(C,'\54'); } else if (((((T818*)C))->_cc/*24*/)==('\175')) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms56_818); r818warning(r818current_position(C1),b1); }/*]*/ C->_ok=r818skip1(C,'\175'); _state=4; } else { _state=3; } /*FI*/} else if((2==z1)){ /*IF*/if (r818skip1(C,'\54')) { _state=1; } else if (r818skip1(C,'\175')) { _state=4; } else if (r818a_base_class_name(C)) { r818warning((((T451*)((T451*)((((T818*)C))->_last_class_name/*89*/))))->_start_position/*4*/,((T0*)ms143_818)); r901add_last(((T901*)_list),(((T818*)C))->_last_class_name/*89*/); } else { _state=3; } /*FI*/} else{r818fcp(C,((T0*)ms149_818)); _state=4; }} } {T636*n=malloc(sizeof(*n)); *n=M636; r636make(n,_sp,_list); R=(T0*)n; } } else { {T636*n=malloc(sizeof(*n)); *n=M636; /*[IRF3.1omitted*//*]*/ R=(T0*)n; } } /*FI*/return R; } int r818a_when_part(T818* C,T0* a1){ int R=0; T0* _constant=NULL; T0* _e_when=NULL; int _state=0; /*IF*/if (r818a_keyword(C,((T0*)ms52_470))) { R=1; {T843*n=malloc(sizeof(*n)); *n=M843; r843make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/),r818get_comments(C)); _e_when=(T0*)n; } while (!((_state)>(3))) { {int z1=_state; if((0==z1)){ /*IF*/if (r818a_constant(C)) { _constant=(((T818*)C))->_last_expression/*97*/; _state=1; } else if (r818a_keyword(C,((T0*)ms46_470))) { /*IF*/if ((_constant)!=((void*)(NULL))) { r843add_value(((T843*)_e_when),_constant); } /*FI*//*[IRF3.3set_compound*/((((T843*)(((T843*)_e_when))))->_compound)=(r818a_compound1(C,((T0*)ms132_818))); /*]*/ r270add_when(((T270*)a1),_e_when); _state=4; } else if (((((T818*)C))->_cc/*24*/)==('\54')) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms145_818); r818warning(r818current_position(C1),b1); }/*]*/ C->_ok=r818skip1(C,'\54'); } else { r818fcp(C,((T0*)ms142_818)); _state=4; } /*FI*/} else if((1==z1)){ /*IF*/if (r818a_keyword(C,((T0*)ms46_470))) { /*IF*/if ((_constant)!=((void*)(NULL))) { r843add_value(((T843*)_e_when),_constant); } /*FI*//*[IRF3.3set_compound*/((((T843*)(((T843*)_e_when))))->_compound)=(r818a_compound1(C,((T0*)ms133_818))); /*]*/ r270add_when(((T270*)a1),_e_when); _state=4; } else if (r818skip2(C,'\56','\56')) { _state=2; } else if (r818skip1(C,'\54')) { r843add_value(((T843*)_e_when),_constant); _constant=NULL; _state=0; } else { r818fcp(C,((T0*)ms142_818)); _state=4; } /*FI*/} else if((2==z1)){ /*IF*/if (r818a_constant(C)) { r843add_slice(((T843*)_e_when),_constant,(((T818*)C))->_last_expression/*97*/); _constant=NULL; _state=3; } else { r818fcp(C,((T0*)ms142_818)); _state=4; } /*FI*/} else{/*IF*/if (r818skip1(C,'\54')) { _state=0; } else if (r818a_keyword(C,((T0*)ms46_470))) { /*[IRF3.3set_compound*/((((T843*)(((T843*)_e_when))))->_compound)=(r818a_compound1(C,((T0*)ms134_818))); /*]*/ r270add_when(((T270*)a1),_e_when); _state=4; } else if (r818a_constant(C)) { _constant=(((T818*)C))->_last_expression/*97*/; r818warning(r511start_position(((T511*)(oBC818tmp_name))),((T0*)ms143_818)); _state=1; } else { r818fcp(C,((T0*)ms142_818)); _state=4; } /*FI*/}} } } /*FI*/return R; } int r818a_feature_list(T818* C){ int R=0; int _state=0; C->_last_feature_list=NULL; while (!((_state)>=(3))) { {int z1=_state; if((0==z1)){ /*IF*/if (r818a_feature_name(C)) { C->_last_feature_list=se_ma855(1,(((T818*)C))->_last_feature_name/*109*/); R=1; _state=1; } else if (((((T818*)C))->_cc/*24*/)==('\54')) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms145_818); r818warning(r818current_position(C1),b1); }/*]*/ C->_ok=r818skip1(C,'\54'); } else { _state=3; } /*FI*/} else if((1==z1)){ /*IF*/if (((((T818*)C))->_cc/*24*/)==('\54')) { C->_ok=r818skip1(C,'\54'); _state=2; } else if (r818a_feature_name(C)) { r818warning(X776start_position((((T818*)C))->_last_feature_name/*109*/),((T0*)ms143_818)); r855add_last(((T855*)((((T818*)C))->_last_feature_list/*105*/)),(((T818*)C))->_last_feature_name/*109*/); } else { _state=3; } /*FI*/} else {/*IF*/if (r818a_feature_name(C)) { r855add_last(((T855*)((((T818*)C))->_last_feature_list/*105*/)),(((T818*)C))->_last_feature_name/*109*/); _state=1; } else if (((((T818*)C))->_cc/*24*/)==('\54')) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms150_818); r818warning(r818current_position(C1),b1); }/*]*/ C->_ok=r818skip1(C,'\54'); } else { /*[IRF3.6ecp*/{T818* C1=C; T0* b1=((T0*)ms140_818); r818error(r818current_position(C1),b1); }/*]*/ _state=3; } /*FI*/}} } return R; } int r818a_instruction(T818* C){ int R=0; R=(((((((r818a_check(C))||(r818a_debug(C)))||(r818a_conditional(C)))||(r818a_retry(C)))||(r818a_inspect(C)))||(r818a_loop(C)))||(r818a_creation(C)))||(r818a_assignment_or_call(C)); return R; } /*No:EIFFEL_PARSER.fz_is*/ /*No:EIFFEL_PARSER.fz_ensure*/ /*No:EIFFEL_PARSER.fz_indexing*/ /*No:EIFFEL_PARSER.us_not*/ int r818a_parent(T818* C){ int R=0; /*IF*/if (r818a_class_type(C)) { R=1; {T877*n=malloc(sizeof(*n)); *n=M877; r877make(n,(((T818*)C))->_last_class_type/*93*/); C->_last_parent=(T0*)n; } /*IF*/if (r818a_keyword(C,((T0*)ms39_470))) { r818a_rename_list(C); /*IF*/if (((((T818*)C))->_cc/*24*/)==('\73')) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms108_818); r818warning(r818current_position(C1),b1); }/*]*/ C->_ok=r818skip1(C,'\73'); } /*FI*/} /*FI*/r818a_new_export_list(C); /*IF*/if (r818a_keyword(C,((T0*)ms48_470))) { r818a_undefine_list(C); } /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms38_470))) { r818a_redefine_list(C); } /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms43_470))) { r818a_select_list(C); } /*FI*//*IF*/if (((((r818a_keyword(C,((T0*)ms39_470)))||(r818a_keyword(C,((T0*)ms15_470))))||(r818a_keyword(C,((T0*)ms48_470))))||(r818a_keyword(C,((T0*)ms38_470))))||(r818a_keyword(C,((T0*)ms43_470)))) { r683add_position(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms109_818); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/C->_ok=r818a_keyword(C,((T0*)ms12_470)); } /*FI*/return R; } /*No:EIFFEL_PARSER.us_muls*/ /*No:EIFFEL_PARSER.last_ascii_code*/ /*No:EIFFEL_PARSER.fz_c_inlinewithcurrent*/ int r818a_prefix(T818* C){ int R=0; /*IF*/if (r818a_keyword(C,((T0*)ms37_470))) { R=1; /*IF*/if (((((T818*)C))->_cc/*24*/)==('\42')) { r818next_char(C); } else { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms110_818); r818warning(r818current_position(C1),b1); }/*]*/ } /*FI*//*IF*/if (r818a_unary(C)) { } else if (r818a_free_operator(C)) { C->_last_prefix=r511to_prefix_name(((T511*)(oBC818tmp_name))); } else { r818fcp(C,((T0*)ms111_818)); } /*FI*//*IF*/if (!(r818skip1(C,'\42'))) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms112_818); r818warning(r818current_position(C1),b1); }/*]*/ } /*FI*/} /*FI*/return R; } void r818error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } /*No:EIFFEL_PARSER.us_gt*/ /*No:EIFFEL_PARSER.fz_until*/ int r818a_e0(T818* C){ int R=0; R=r818a_e1(C); r818a_r1(C,(((T818*)C))->_last_expression/*97*/); return R; } void r818a_class_declaration(T818* C){ T0* _al=NULL; T0* _hc=NULL; T0* _sp=NULL; r818a_indexing(C); /*IF*/if (r818a_keyword(C,((T0*)ms8_470))) { r605set_is_deferred(((T605*)((((T818*)C))->_last_base_class/*65*/))); } /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms14_470))) { r605set_is_expanded(((T605*)((((T818*)C))->_last_base_class/*65*/))); /*IF*/if (r818a_keyword(C,((T0*)ms8_470))) { r605set_is_deferred(((T605*)((((T818*)C))->_last_base_class/*65*/))); } /*FI*/} /*FI*//*[IRF3.3set_heading_comment1*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_heading_comment1)=(r818get_comments(C)); /*]*/ /*IF*/if (!(r818a_keyword(C,((T0*)ms5_470)))) { r818fcp(C,((T0*)ms50_818)); } /*FI*/r818a_base_class_name1(C); r818a_formal_generic_list(C); /*IF*/if (r818a_keyword(C,((T0*)ms33_470))) { /*IF*/if (r818a_manifest_string(C)) { /*[IRF3.3set_obsolete_type_string*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_obsolete_type_string)=((((T818*)C))->_last_manifest_string/*145*/); /*]*/ } else { r818fcp(C,((T0*)ms51_818)); } /*FI*/} /*FI*//*[IRF3.3set_heading_comment2*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_heading_comment2)=(r818get_comments(C)); /*]*/ /*IF*/if (r818a_keyword(C,((T0*)ms24_470))) { r818a_parent_list(C,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/),r818get_comments(C)); } /*FI*/while (!(!(r818a_keyword(C,((T0*)ms6_470))))) { r818a_creation_clause(C,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/)); } while (!(!(r818a_keyword(C,((T0*)ms18_470))))) { r818a_feature_clause(C); } /*IF*/if (r818a_keyword(C,((T0*)ms26_470))) { {T627*n=malloc(sizeof(*n)); *n=M627; r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/); _sp=(T0*)n; } _hc=r818get_comments(C); _al=r818a_assertion(C); r605set_invariant(((T605*)((((T818*)C))->_last_base_class/*65*/)),_sp,_hc,_al); } /*FI*//*IF*/if ((r818a_keyword(C,((T0*)ms12_470)))||(((((T818*)C))->_last_keyword/*113*/)==((void*)(((T0*)ms12_470))))) { /*IF*/if (((((T818*)C))->_cc/*24*/)==('\73')) { /*[IRF3.6wcp*/{T818* C1=C; T0* b1=((T0*)ms68_470); r818warning(r818current_position(C1),b1); }/*]*/ C->_ok=r818skip1(C,'\73'); } /*FI*//*[IRF3.3set_end_comment*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_end_comment)=(r818get_comments(C)); /*]*/ /*IF*/if (((((T818*)C))->_cc/*24*/)!=('\0')) { r818fcp(C,((T0*)ms52_818)); } /*FI*/} else { r818fcp(C,((T0*)ms53_818)); } /*FI*/} int r818skip1(T818* C,char a1){ int R=0; /*IF*/if ((a1)==((((T818*)C))->_cc/*24*/)) { C->_start_line=(((T818*)C))->_line/*16*/; C->_start_column=(((T818*)C))->_column/*12*/; R=1; r818next_char(C); r818skip_comments(C); } /*FI*/return R; } /*No:EIFFEL_PARSER.us_plus*/ void r818a_r1(T818* C,T0* a1){ T0* _sp=NULL; T0* _infix_implies=NULL; /*IF*/if (r818a_keyword(C,((T0*)ms34_473))) { {T627*n=malloc(sizeof(*n)); *n=M627; r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/); _sp=(T0*)n; } /*IF*/if (r818a_e1(C)) { {T90*n=malloc(sizeof(*n)); *n=M90; r90make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/); _infix_implies=(T0*)n; } r818a_r1(C,_infix_implies); } else { r818error(_sp,((T0*)ms119_818)); } /*FI*/} else { C->_last_expression=a1; } /*FI*/} int r818a_e1(T818* C){ int R=0; R=r818a_e2(C); r818a_r2(C,(((T818*)C))->_last_expression/*97*/); return R; } /*No:EIFFEL_PARSER.last_type_formal_generic*/ /*No:EIFFEL_PARSER.em10*/ /*No:EIFFEL_PARSER.em20*/ int r818skip2(T818* C,char a1,char a2){ int R=0; /*IF*/if ((a1)==((((T818*)C))->_cc/*24*/)) { C->_start_line=(((T818*)C))->_line/*16*/; C->_start_column=(((T818*)C))->_column/*12*/; r818next_char(C); /*IF*/if ((a2)==((((T818*)C))->_cc/*24*/)) { R=1; r818next_char(C); r818skip_comments(C); } else { r818prev_char(C); } /*FI*/} /*FI*/return R; } void r818a_r2(T818* C,T0* a1){ T0* _sp=NULL; T0* _infix_xor=NULL; T0* _infix_or=NULL; T0* _infix_or_else=NULL; /*IF*/if (r818a_keyword(C,((T0*)ms41_473))) { {T627*n=malloc(sizeof(*n)); *n=M627; r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/); _sp=(T0*)n; } /*IF*/if (r818a_keyword(C,((T0*)ms10_470))) { /*IF*/if (r818a_e2(C)) { {T278*n=malloc(sizeof(*n)); *n=M278; r278make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/); _infix_or_else=(T0*)n; } r818a_r2(C,_infix_or_else); } else { r818err_exp(_sp,((T0*)ms42_473)); } /*FI*/} else { /*IF*/if (r818a_e2(C)) { {T121*n=malloc(sizeof(*n)); *n=M121; r121make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/); _infix_or=(T0*)n; } r818a_r2(C,_infix_or); } else { r818err_exp(_sp,((T0*)ms41_473)); } /*FI*/} /*FI*/} else if (r818a_keyword(C,((T0*)ms50_473))) { {T627*n=malloc(sizeof(*n)); *n=M627; r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/); _sp=(T0*)n; } /*IF*/if (r818a_e2(C)) { {T760*n=malloc(sizeof(*n)); *n=M760; r760make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/); _infix_xor=(T0*)n; } r818a_r2(C,_infix_xor); } else { r818err_exp(_sp,((T0*)ms50_473)); } /*FI*/} else { C->_last_expression=a1; } /*FI*/} int r818a_e2(T818* C){ int R=0; R=r818a_e3(C); r818a_r3(C,(((T818*)C))->_last_expression/*97*/); return R; } /*No:EIFFEL_PARSER.em11*/ /*No:EIFFEL_PARSER.fz_expanded*/ void r818a_r3(T818* C,T0* a1){ T0* _sp=NULL; T0* _infix_and=NULL; T0* _infix_and_then=NULL; /*IF*/if (r818a_keyword(C,((T0*)ms27_473))) { {T627*n=malloc(sizeof(*n)); *n=M627; r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/); _sp=(T0*)n; } /*IF*/if (r818a_keyword(C,((T0*)ms46_470))) { /*IF*/if (r818a_e3(C)) { {T655*n=malloc(sizeof(*n)); *n=M655; r655make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/); _infix_and_then=(T0*)n; } r818a_r3(C,_infix_and_then); } else { r818err_exp(_sp,((T0*)ms28_473)); } /*FI*/} else { /*IF*/if (r818a_e3(C)) { {T313*n=malloc(sizeof(*n)); *n=M313; r313make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/); _infix_and=(T0*)n; } r818a_r3(C,_infix_and); } else { r818err_exp(_sp,((T0*)ms27_473)); } /*FI*/} /*FI*/} else { C->_last_expression=a1; } /*FI*/} int r818a_e3(T818* C){ int R=0; R=r818a_e4(C); r818a_r4(C,(((T818*)C))->_last_expression/*97*/); return R; } /*No:EIFFEL_PARSER.fz_class*/ /*No:EIFFEL_PARSER.last_base_class*/ /*No:EIFFEL_PARSER.fz_infix*/ /*No:EIFFEL_PARSER.em12*/ T0*oBC818forbidden_class=NULL; /*No:EIFFEL_PARSER.us_lt*/ /*No:EIFFEL_PARSER.us_or*/ void r818a_r4(T818* C,T0* a1){ T0* _sp=NULL; T0* _infix_gt=NULL; T0* _infix_ge=NULL; T0* _infix_lt=NULL; T0* _infix_le=NULL; T0* _infix_neq=NULL; T0* _infix_eq=NULL; /*IF*/if (r818skip1(C,'\75')) { {T627*n=malloc(sizeof(*n)); *n=M627; r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/); _sp=(T0*)n; } /*IF*/if (r818a_e4(C)) { {T999*n=malloc(sizeof(*n)); *n=M999; r999make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/); _infix_eq=(T0*)n; } r818a_r4(C,_infix_eq); } else { r818err_exp(_sp,((T0*)ms31_473)); } /*FI*/} else if (r818skip2(C,'\57','\75')) { {T627*n=malloc(sizeof(*n)); *n=M627; r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/); _sp=(T0*)n; } /*IF*/if (r818a_e4(C)) { {T517*n=malloc(sizeof(*n)); *n=M517; r517make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/); _infix_neq=(T0*)n; } r818a_r4(C,_infix_neq); } else { r818err_exp(_sp,((T0*)ms39_473)); } /*FI*/} else if (r818skip2(C,'\74','\75')) { {T627*n=malloc(sizeof(*n)); *n=M627; r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/); _sp=(T0*)n; } /*IF*/if (r818a_e4(C)) { {T932*n=malloc(sizeof(*n)); *n=M932; r932make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/); _infix_le=(T0*)n; } r818a_r4(C,_infix_le); } else { r818err_exp(_sp,((T0*)ms35_473)); } /*FI*/} else if (r818skip2(C,'\76','\75')) { {T627*n=malloc(sizeof(*n)); *n=M627; r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/); _sp=(T0*)n; } /*IF*/if (r818a_e4(C)) { {T890*n=malloc(sizeof(*n)); *n=M890; r890make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/); _infix_ge=(T0*)n; } r818a_r4(C,_infix_ge); } else { r818err_exp(_sp,((T0*)ms32_473)); } /*FI*/} else if (r818skip1(C,'\74')) { {T627*n=malloc(sizeof(*n)); *n=M627; r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/); _sp=(T0*)n; } /*IF*/if (r818a_e4(C)) { {T112*n=malloc(sizeof(*n)); *n=M112; r112make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/); _infix_lt=(T0*)n; } r818a_r4(C,_infix_lt); } else { r818err_exp(_sp,((T0*)ms36_473)); } /*FI*/} else if (r818skip1unless2(C,'\76','\76')) { {T627*n=malloc(sizeof(*n)); *n=M627; r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/); _sp=(T0*)n; } /*IF*/if (r818a_e4(C)) { {T57*n=malloc(sizeof(*n)); *n=M57; r57make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/); _infix_gt=(T0*)n; } r818a_r4(C,_infix_gt); } else { r818err_exp(_sp,((T0*)ms33_473)); } /*FI*/} else { C->_last_expression=a1; } /*FI*/} int r818a_e4(T818* C){ int R=0; R=r818a_e5(C); r818a_r5(C,(((T818*)C))->_last_expression/*97*/); return R; } /*No:EIFFEL_PARSER.us_any*/ /*No:EIFFEL_PARSER.em13*/ /*No:EIFFEL_PARSER.current_class_name*/ /*No:EIFFEL_PARSER.fz_strip*/ /*No:SMALL_EIFFEL.dos_system*/ /*No:SMALL_EIFFEL.fz_system_se*/ /*No:SMALL_EIFFEL.fz_sys*/ T0*oBC364tmp_file_read=NULL; int fBC604loading_path=0; T0*oBC604loading_path=NULL; T0* r604loading_path(T604* C){ if (fBC604loading_path==0){ T0* R=NULL; T0* _file=NULL; T0* _path=NULL; fBC604loading_path=1; {T52*n=malloc(sizeof(*n)); *n=M52; r52make(n,1,10); R=(T0*)n; } r52clear(((T52*)R)); {T675*n=malloc(sizeof(*n)); *n=M675; r675connect_to(n,((T0*)ms2_604)); _file=(T0*)n; } /*IF*/if (/*(IRF4.7is_connected*/((((T675*)((T675*)_file)))->_path/*4*/)!=(NULL)/*)*/) { while (!(r675end_of_input(((T675*)_file)))) { r675read_line(((T675*)_file)); r52add_last(((T52*)R),r7twin(((T7*)(oBC762last_string)))); } r675disconnect(((T675*)_file)); } /*FI*/_path=r7twin(((T7*)(r604small_eiffel_directory(C)))); r604add_directory(C,_path,((T0*)ms126_470)); r7append(((T7*)_path),((T0*)ms3_604)); r7append(((T7*)_path),r604system_name(C)); r675connect_to(((T675*)_file),_path); /*IF*/if (/*(IRF4.7is_connected*/((((T675*)((T675*)_file)))->_path/*4*/)!=(NULL)/*)*/) { while (!(r675end_of_input(((T675*)_file)))) { r675read_line(((T675*)_file)); r52add_last(((T52*)R),r7twin(((T7*)(oBC762last_string)))); } r675disconnect(((T675*)_file)); } else { r306w_put_string(((T0*)ms4_604)); r306w_put_string(_path); r306w_put_string(((T0*)ms5_604)); } /*FI*/oBC604loading_path=R;} return oBC604loading_path;} /*No:SMALL_EIFFEL.unix_system*/ int r604re_load_class(T604* C,T0* a1){ int R=0; T0* _new_class=NULL; T0* _name=NULL; _name=(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_to_string/*0*/; r718remove(((T718*)(oBC604base_class_dictionary)),_name); _new_class=r604load_class(C,_name); R=(_new_class)!=((void*)(NULL)); return R; } /*No:SMALL_EIFFEL.exit_failure_code*/ /*No:SMALL_EIFFEL.vms_system*/ T0*oBC604run_class_dictionary=NULL; int fBC364small_eiffel_directory=0; T0*oBC364small_eiffel_directory=NULL; T0* r604small_eiffel_directory(T604* C){ if (fBC364small_eiffel_directory==0){ T0* R=NULL; char _slash=0; int _i=0; fBC364small_eiffel_directory=1; R=r604get_environment_variable(C,((T0*)ms121_470)); /*IF*/if ((R)==((void*)(NULL))) { R=r7twin(((T7*)(((T0*)ms121_470)))); r7to_upper(((T7*)R)); R=r604get_environment_variable(C,R); /*IF*/if ((R)!=((void*)(NULL))) { r7to_upper(((T7*)(((T0*)ms121_470)))); } /*FI*/} /*FI*//*IF*/if ((R)==((void*)(NULL))) { R=((T0*)ms1_364); } /*FI*/_i=(((T7*)((T7*)R)))->_count/*4*/; while (!((_i)<(0))) { _slash=/*(IRF4.6item*/((((T7*)((T7*)R)))->_storage/*0*/)[(_i)-(1)]/*)*/; /*IF*/if ((r3is_letter(_slash))||(r3is_digit(_slash))) { _i=(_i)-(1); } else { _i=-(1); } /*FI*/} /*IF*/if ((_i)==(0)) { r7extend(((T7*)R),'\57'); } else if (!((r7last(((T7*)R)))==(_slash))) { r7extend(((T7*)R),_slash); } /*FI*/oBC364small_eiffel_directory=R;} return oBC364small_eiffel_directory;} T0*oBC604stack_rf=NULL; /*No:SMALL_EIFFEL.amiga_system*/ /*No:SMALL_EIFFEL.make*/ /*No:SMALL_EIFFEL.last_unique*/ T0*oBC604tmp_tail=NULL; int fBC604tmp_class_name=0; T0*oBC604tmp_class_name=NULL; T0* r604tmp_class_name(void){ if (fBC604tmp_class_name==0){ T0* R=NULL; fBC604tmp_class_name=1; {T451*n=malloc(sizeof(*n)); *n=M451; r451make(n,((T0*)ms1_473),NULL); R=(T0*)n; } oBC604tmp_class_name=R;} return oBC604tmp_class_name;} void r604add_class(T604* C,T0* a1){ r718put(((T718*)(oBC604base_class_dictionary)),a1,(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_to_string/*0*/); r604incr_magic_count(C); } void r604push(T604* C,T0* a1){ C->_top=((((T604*)C))->_top/*12*/)+(1); r477force(((T477*)(oBC604stack_rf)),a1,(((T604*)C))->_top/*12*/); } int r604next_unique(T604* C){ int R=0; /*IF*/if (((((T604*)C))->_last_unique/*16*/)<(1000)) { C->_last_unique=1000; } /*FI*/C->_last_unique=((((T604*)C))->_last_unique/*16*/)+(1); R=(((T604*)C))->_last_unique/*16*/; return R; } T0* r604top_rf(T604* C){ T0* R=NULL; R=r477item(((T477*)(oBC604stack_rf)),(((T604*)C))->_top/*12*/); return R; } void r604add_directory(T604* C,T0* a1,T0* a2){ /*IF*/if ((((T0*)ms17_364))==((void*)(r604system_name(C)))) { r7set_last(((T7*)a1),'\57'); r7append(((T7*)a1),a2); r7set_last(((T7*)a1),'\57'); } else if ((((T0*)ms19_364))==((void*)(r604system_name(C)))) { r7set_last(((T7*)a1),'\134'); r7append(((T7*)a1),a2); r7set_last(((T7*)a1),'\134'); } else if ((((T0*)ms15_364))==((void*)(r604system_name(C)))) { r7set_last(((T7*)a1),'\72'); r7append(((T7*)a1),a2); r7set_last(((T7*)a1),'\72'); } else if ((((T0*)ms14_364))==((void*)(r604system_name(C)))) { r7set_last(((T7*)a1),'\134'); r7append(((T7*)a1),a2); r7set_last(((T7*)a1),'\134'); } else if ((((T0*)ms16_364))==((void*)(r604system_name(C)))) { r7set_last(((T7*)a1),'\134'); r7append(((T7*)a1),a2); r7set_last(((T7*)a1),'\134'); } else if ((((T0*)ms13_364))==((void*)(r604system_name(C)))) { r7set_last(((T7*)a1),'\57'); r7append(((T7*)a1),a2); r7set_last(((T7*)a1),'\57'); } else if ((((T0*)ms18_364))==((void*)(r604system_name(C)))) { r7set_last(((T7*)a1),'\135'); r7remove_last(((T7*)a1),1); r7set_last(((T7*)a1),'\56'); r7append(((T7*)a1),a2); r7set_last(((T7*)a1),'\135'); } /*FI*/} T0*oBC604parser_buffer_path=NULL; /*No:SMALL_EIFFEL.windows_system*/ T0* r604get_environment_variable(T604* C,T0* a1){ T0* R=NULL; void* _p=0; _p=r7to_external(((T7*)a1)); R=(NULL==(_p=getenv((char*)_p)))?NULL:((T0*)e2s((char*)_p)); return R; } /*No:SMALL_EIFFEL.short_flag*/ /*No:SMALL_EIFFEL.fz_03*/ T0* r604get_class(T0* a1){ T0* R=NULL; /*IF*/if (r718has(((T718*)(oBC604base_class_dictionary)),a1)) { R=r718at(((T718*)(oBC604base_class_dictionary)),a1); } else { r451make(((T451*)(r604tmp_class_name())),a1,NULL); R=r451base_class(((T451*)(r604tmp_class_name()))); } /*FI*/return R; } T0*oBC364system_list=NULL; int fBC364system_name=0; T0*oBC364system_name=NULL; T0* r604system_name(T604* C){ if (fBC364system_name==0){ T0* R=NULL; int _i=0; fBC364system_name=1; r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C)); /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\57')) { r7set_last(((T7*)(oBC364tmp_path)),'\57'); r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470)); r7extend(((T7*)(oBC364tmp_path)),'\57'); r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470)); r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path); } /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) { r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C)); /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\134')) { r7set_last(((T7*)(oBC364tmp_path)),'\134'); r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470)); r7extend(((T7*)(oBC364tmp_path)),'\134'); r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470)); r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path); } /*FI*/} /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) { r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C)); /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\72')) { r7set_last(((T7*)(oBC364tmp_path)),'\72'); r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470)); r7extend(((T7*)(oBC364tmp_path)),'\72'); r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470)); r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path); } /*FI*/} /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) { r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C)); /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\135')) { r7set_last(((T7*)(oBC364tmp_path)),'\135'); r7remove_last(((T7*)(oBC364tmp_path)),1); r7extend(((T7*)(oBC364tmp_path)),'\56'); r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470)); r7extend(((T7*)(oBC364tmp_path)),'\135'); r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470)); r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path); } /*FI*/} /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) { r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C)); r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470)); r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path); } /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) { r306w_put_string(((T0*)ms20_364)); r306w_put_string(((T0*)ms127_470)); r306w_put_string(((T0*)ms21_364)); r306w_put_string(r604small_eiffel_directory(C)); r306w_put_string(((T0*)ms242_470)); exit(1); } /*FI*/r675read_line(((T675*)(oBC364tmp_file_read))); R=oBC762last_string; _i=r52index_of(((T52*)(oBC364system_list)),R); r675disconnect(((T675*)(oBC364tmp_file_read))); /*IF*/if ((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/)) { r306w_put_string(((T0*)ms22_364)); r306w_put_string(oBC364tmp_path); r306w_put_string(((T0*)ms23_364)); _i=1; while (!((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/))) { r306w_put_string(r52item(((T52*)(oBC364system_list)),_i)); r306w_put_character('\n'); _i=(_i)+(1); } } else { R=r52item(((T52*)(oBC364system_list)),_i); r306put_string(((T306*)(oBC364echo)),((T0*)ms24_364)); r306put_string(((T306*)(oBC364echo)),R); r306put_string(((T306*)(oBC364echo)),((T0*)ms242_470)); } /*FI*/oBC364system_name=R;} return oBC364system_name;} int r604parser_buffer_for(T604* C,T0* a1){ int R=0; int _i=0; r7copy(((T7*)(oBC604tmp_tail)),a1); r7to_lower(((T7*)(oBC604tmp_tail))); /*IF*/if (!(r7has_suffix(((T7*)(oBC604tmp_tail)),((T0*)ms25_364)))) { r7append(((T7*)(oBC604tmp_tail)),((T0*)ms25_364)); } /*FI*/_i=(((T52*)((T52*)(r604loading_path(C)))))->_lower/*12*/; while (!(((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))||(R))) { r7copy(((T7*)(oBC604parser_buffer_path)),r52item(((T52*)(r604loading_path(C))),_i)); r7append(((T7*)(oBC604parser_buffer_path)),oBC604tmp_tail); r676load_file(((T676*)(oBC364parser_buffer)),oBC604parser_buffer_path); R=/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/; _i=(_i)+(1); } /*IF*/if ((!(R))&&(r794has(((T794*)(r604rename_dictionary(C))),oBC604tmp_tail))) { r7copy(((T7*)(oBC604parser_buffer_path)),r794at(((T794*)(r604rename_dictionary(C))),oBC604tmp_tail)); r676load_file(((T676*)(oBC364parser_buffer)),oBC604parser_buffer_path); /*IF*/if (/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/) { R=1; } else { r306w_put_string(((T0*)ms10_604)); r306w_put_string(oBC604parser_buffer_path); r306w_put_string(((T0*)ms137_470)); exit(1); } /*FI*/} /*FI*//*IF*/if (!(R)) { r7copy(((T7*)(oBC604tmp_tail)),a1); /*IF*/if (!(r7has_suffix(((T7*)(oBC604tmp_tail)),((T0*)ms25_364)))) { r7append(((T7*)(oBC604tmp_tail)),((T0*)ms25_364)); } /*FI*/_i=(((T52*)((T52*)(r604loading_path(C)))))->_lower/*12*/; while (!(((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))||(R))) { r7copy(((T7*)(oBC604parser_buffer_path)),r52item(((T52*)(r604loading_path(C))),_i)); r7append(((T7*)(oBC604parser_buffer_path)),oBC604tmp_tail); r676load_file(((T676*)(oBC364parser_buffer)),oBC604parser_buffer_path); R=/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/; _i=(_i)+(1); } } /*FI*//*IF*/if (!(R)) { r306w_put_string(((T0*)ms11_604)); r306w_put_string(a1); r306w_put_string(((T0*)ms12_604)); /*[IRF3.3clear*/((((T7*)(((T7*)(oBC604parser_buffer_path)))))->_count)=(0); /*]*/ r604append_loading_path_in(C,oBC604parser_buffer_path); r306w_put_string(oBC604parser_buffer_path); } /*FI*/return R; } /*No:SMALL_EIFFEL.fz_b0*/ T0*oBC364tmp_path=NULL; /*No:SMALL_EIFFEL.is_ready*/ /*No:SMALL_EIFFEL.base_class_count*/ /*No:SMALL_EIFFEL.fz_se*/ /*No:SMALL_EIFFEL.os2_system*/ void r604pop(T604* C){ C->_top=((((T604*)C))->_top/*12*/)-(1); } int fBC604rename_dictionary=0; T0*oBC604rename_dictionary=NULL; T0* r604rename_dictionary(T604* C){ if (fBC604rename_dictionary==0){ T0* R=NULL; T0* _short_name=NULL; T0* _full_name=NULL; int _i=0; fBC604rename_dictionary=1; {T794*n=malloc(sizeof(*n)); *n=M794; r794make(n); R=(T0*)n; } _i=1; while (!((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))) { r7copy(((T7*)(oBC364tmp_path)),r52item(((T52*)(r604loading_path(C))),_i)); r7append(((T7*)(oBC364tmp_path)),((T0*)ms13_604)); r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path); /*IF*/if (/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/) { while (!(r675end_of_input(((T675*)(oBC364tmp_file_read))))) { r675read_word(((T675*)(oBC364tmp_file_read))); _full_name=r7twin(((T7*)(oBC762last_string))); r675read_word(((T675*)(oBC364tmp_file_read))); _short_name=r7twin(((T7*)(oBC762last_string))); r7prepend(((T7*)_short_name),r52item(((T52*)(r604loading_path(C))),_i)); /*IF*/if (r794has(((T794*)R),_full_name)) { r306w_put_string(((T0*)ms14_604)); r306w_put_string(_full_name); r306w_put_string(((T0*)ms15_604)); r306w_put_string(_short_name); r306w_put_string(((T0*)ms16_604)); r306w_put_string(r794at(((T794*)R),_full_name)); r306w_put_string(((T0*)ms17_604)); exit(1); } /*FI*/r794put(((T794*)R),_short_name,_full_name); r675skip_separators(((T675*)(oBC364tmp_file_read))); } r675disconnect(((T675*)(oBC364tmp_file_read))); } /*FI*/_i=(_i)+(1); } oBC604rename_dictionary=R;} return oBC604rename_dictionary;} T0* r604run_class(T0* a1){ T0* R=NULL; T0* _run_string=NULL; _run_string=X291run_time_mark(a1); /*IF*/if (r250has(((T250*)(oBC604run_class_dictionary)),_run_string)) { R=r250at(((T250*)(oBC604run_class_dictionary)),_run_string); } else { {T368*n=malloc(sizeof(*n)); *n=M368; r368make(n,a1); R=(T0*)n; } } /*FI*/return R; } void r604append_loading_path_in(T604* C,T0* a1){ T0* _sed=NULL; int _i=0; r7append(((T7*)a1),((T0*)ms62_604)); _i=(((T52*)((T52*)(r604loading_path(C)))))->_lower/*12*/; while (!((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))) { r7extend(((T7*)a1),'\42'); r7append(((T7*)a1),r52item(((T52*)(r604loading_path(C))),_i)); r7extend(((T7*)a1),'\42'); r7extend(((T7*)a1),'\n'); _i=(_i)+(1); } r7append(((T7*)a1),((T0*)ms63_604)); r7append(((T7*)a1),((T0*)ms121_470)); _sed=r604get_environment_variable(C,((T0*)ms121_470)); r7append(((T7*)a1),((T0*)ms64_604)); /*IF*/if ((_sed)==((void*)(NULL))) { r7append(((T7*)a1),((T0*)ms65_604)); } else { r7append(((T7*)a1),((T0*)ms66_604)); r7append(((T7*)a1),_sed); r7append(((T7*)a1),((T0*)ms67_604)); } /*FI*/r7extend(((T7*)a1),'\n'); } /*No:SMALL_EIFFEL.top*/ int r604is_used(T0* a1){ int R=0; R=r718has(((T718*)(oBC604base_class_dictionary)),a1); return R; } /*No:SMALL_EIFFEL.macintosh_system*/ void r604incr_magic_count(T604* C){ C->_magic_count=((((T604*)C))->_magic_count/*8*/)+(1); } /*No:SMALL_EIFFEL.magic_count*/ /*No:SMALL_EIFFEL.eiffel_suffix*/ T0* r604base_class(T604* C,T0* a1){ T0* R=NULL; /*IF*/if (r718has(((T718*)(oBC604base_class_dictionary)),(((T451*)((T451*)a1)))->_to_string/*0*/)) { R=r718at(((T718*)(oBC604base_class_dictionary)),(((T451*)((T451*)a1)))->_to_string/*0*/); } else if ((((T818*)((T818*)(oBC364eiffel_parser))))->_is_running/*8*/) { /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms6_604); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } else { /*IF*/if (r604parser_buffer_for(C,(((T451*)((T451*)a1)))->_to_string/*0*/)) { R=r818analyse_class(((T818*)(oBC364eiffel_parser)),a1); } /*FI*//*IF*/if ((R)==((void*)(NULL))) { r683add_position((((T451*)((T451*)a1)))->_start_position/*4*/); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms7_604); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/} /*FI*/return R; } /*No:SMALL_EIFFEL.fatal_error*/ T0* r604load_class(T604* C,T0* a1){ T0* R=NULL; /*IF*/if (r604parser_buffer_for(C,a1)) { R=r818analyse_class(((T818*)(oBC364eiffel_parser)),NULL); /*IF*/if ((R)==((void*)(NULL))) { /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_604); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/} else { /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms9_604); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/return R; } /*No:SMALL_EIFFEL.us_any*/ T0*oBC604base_class_dictionary=NULL; void r390check_creation_clause(T390* C,T0* a1){ T0* _args=NULL; T0* _top=NULL; T0* _bottom=NULL; T0* _fn=NULL; _fn=/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/); /*IF*/if (X291is_like_current(a1)) { _top=r627base_class(((T627*)(X776start_position(_fn)))); _bottom=X291base_class(a1); _fn=r605new_name_of(((T605*)_bottom),_top,_fn); /*IF*/if ((_fn)==((void*)(NULL))) { _fn=/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/); r683add_position(X776start_position(_fn)); /*[IRF3.6append*/{T0* b1=((T0*)ms143_470); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X776to_string(_fn); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms1_394); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=X291run_time_mark(a1); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms137_470); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/} /*FI*/C->_run_feature=r368get_feature(((T368*)(X291run_class(a1))),_fn); /*IF*/if (((((T390*)C))->_run_feature/*16*/)==((void*)(NULL))) { r390cp_not_found(C,_fn); } /*FI*//*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) { } else if (!(X291has_creation(a1,_fn))) { r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/))); r683add_position(X776start_position(_fn)); /*[IRF3.6append*/{T0* b1=X776to_string(_fn); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms2_394); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683add_type(a1,((T0*)ms67_470)); r683print_as_fatal_error(((T683*)(oBC364eh))); } /*FI*/X496add_client((((T390*)C))->_run_feature/*16*/,r592run_class(((T592*)((((T390*)C))->_run_compound/*4*/)))); /*IF*/if ((/*X496*/((T0*)(((T808*)((T808*)((((T390*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) { r683add_position(X496start_position((((T390*)C))->_run_feature/*16*/)); r683add_position(X776start_position(_fn)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_394); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*//*IF*/if (((r390arg_count(C))==(0))&&((/*X496*/((T0*)(((T808*)((T808*)((((T390*)C))->_run_feature/*16*/))))->_arguments/*20*/))!=((void*)(NULL)))) { r683add_position(X496start_position((((T390*)C))->_run_feature/*16*/)); r683add_position((((T390*)C))->_start_position/*8*/); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_394); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*//*IF*/if ((r390arg_count(C))>(0)) { _args=r431to_runnable(((T431*)(X173arguments((((T390*)C))->_call/*20*/))),r390current_type(C)); /*IF*/if ((_args)==((void*)(NULL))) { r390error(r431start_position(((T431*)(X173arguments((((T390*)C))->_call/*20*/)))),((T0*)ms56_470)); } else { r431match_with(((T431*)_args),(((T390*)C))->_run_feature/*16*/); } /*FI*/} /*FI*/C->_call=X173make_runnable((((T390*)C))->_call/*20*/,(((T390*)C))->_run_compound/*4*/,(((T390*)C))->_writable/*12*/,_args,(((T390*)C))->_run_feature/*16*/); } T0* r390add_comment(T390* C,T0* a1){ T0* R=NULL; /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) { R=(T0*)C; } /*AF*/else { {T46*n=malloc(sizeof(*n)); *n=M46; r46make(n,(T0*)C,a1); R=(T0*)n; } } /*FI*/return R; } void r390check_created_type(T390* C,T0* a1){ T0* _rt=NULL; _rt=X291run_type(a1); /*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) { } else if ((((T605*)((T605*)(X291base_class(_rt)))))->_is_deferred/*16*/) { r683add_type(_rt,((T0*)ms2_747)); r683add_position((((T390*)C))->_start_position/*8*/); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_747); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*//*IF*/if (X291is_formal_generic(a1)) { r683add_position((((T390*)C))->_start_position/*8*/); /*[IRF3.6append*/{T0* b1=((T0*)ms4_747); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683add_type(a1,((T0*)ms5_747)); r683print_as_fatal_error(((T683*)(oBC364eh))); } /*FI*/r368set_at_run_time(((T368*)(X291run_class(_rt)))); } void r390cp_not_found(T390* C,T0* a1){ r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/))); r683add_position(X776start_position(a1)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms5_394); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*No:CREATION_CALL_3.writable*/ /*No:CREATION_CALL_3.fz_bad_arguments*/ void r390make(T390* C,T0* a1,T0* a2,T0* a3){ C->_start_position=a1; C->_writable=a2; C->_call=a3; } int r390arg_count(T390* C){ int R=0; /*IF*/if (((((T390*)C))->_call/*20*/)!=((void*)(NULL))) { R=X173arg_count((((T390*)C))->_call/*20*/); } /*FI*/return R; } /*No:CREATION_CALL_3.call*/ /*No:CREATION_CALL_3.run_feature*/ /*No:CREATION_CALL_3.start_position*/ T0* r390to_runnable(T390* C,T0* a1){ T0* R=NULL; T0* _t=NULL; /*IF*/if (((((T390*)C))->_run_compound/*4*/)==((void*)(NULL))) { r390check_writable(C,a1); _t=X662result_type((((T390*)C))->_writable/*12*/); r390check_created_type(C,_t); r390check_creation_clause(C,_t); R=(T0*)C; } else { {T390*n=malloc(sizeof(*n)); *n=M390; r390make(n,(((T390*)C))->_start_position/*8*/,(((T390*)C))->_writable/*12*/,(((T390*)C))->_call/*20*/); R=(T0*)n; } R=r390to_runnable(((T390*)R),a1); } /*FI*/return R; } /*No:CREATION_CALL_3.fz_03*/ void r390pretty_print(T390* C){ r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_390)); X173pretty_print((((T390*)C))->_call/*20*/); } T0* r390current_type(T390* C){ T0* R=NULL; /*IF*/if (((((T390*)C))->_run_compound/*4*/)!=((void*)(NULL))) { R=(((T592*)((T592*)((((T390*)C))->_run_compound/*4*/))))->_current_type/*4*/; } /*FI*/return R; } /*No:CREATION_CALL_3.fz_09*/ /*No:CREATION_CALL_3.run_compound*/ /*No:CREATION_CALL_3.fz_dot*/ void r390check_writable(T390* C,T0* a1){ T0* _w=NULL; C->_run_compound=a1; _w=X662to_runnable((((T390*)C))->_writable/*12*/,r390current_type(C)); /*IF*/if ((_w)==((void*)(NULL))) { r683add_position(X662start_position((((T390*)C))->_writable/*12*/)); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_747); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } else { C->_writable=_w; } /*FI*/} void r390error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } /*No:CREATION_CALL_3.fatal_error*/ /*No:CREATION_CALL_3.end_mark_comment*/ void r699add_into(T699* C,T0* a1){ T0* _a=NULL; int _i=0; /*IF*/if (((((T699*)C))->_list/*8*/)!=((void*)(NULL))) { _i=1; while (!((_i)>((((T608*)((T608*)((((T699*)C))->_list/*8*/))))->_upper/*8*/))) { _a=r608item(((T608*)((((T699*)C))->_list/*8*/)),_i); /*IF*/if (!(r608fast_has(((T608*)a1),_a))) { r608add_last(((T608*)a1),_a); } /*FI*/_i=(_i)+(1); } } /*FI*/} void r699from_runnable(T699* C,T0* a1){ C->_list=a1; C->_current_type=(((T348*)((T348*)(r608item(((T608*)((((T699*)C))->_list/*8*/)),1)))))->_current_type/*12*/; } void r699make(T699* C,T0* a1,T0* a2,T0* a3){ C->_start_position=a1; C->_header_comment=a2; C->_list=a3; } T0* r699name(void){ T0* R=NULL; R=((T0*)ms26_470); return R; } /*No:CLASS_INVARIANT.start_position*/ /*No:CLASS_INVARIANT.fz_invariant*/ void r699pretty_print(T699* C){ int _i=0; /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(0); /*]*/ /*IF*/if (!(r238zen_mode(((T238*)(oBC364fmt))))) { r238skip(((T238*)(oBC364fmt)),1); } /*FI*/r238keyword(((T238*)(oBC364fmt)),r699name()); /*IF*/if (((((T699*)C))->_header_comment/*4*/)!=((void*)(NULL))) { r393pretty_print(((T393*)((((T699*)C))->_header_comment/*4*/))); } /*FI*//*IF*/if (((((T699*)C))->_list/*8*/)!=((void*)(NULL))) { _i=1; while (!((_i)>((((T608*)((T608*)((((T699*)C))->_list/*8*/))))->_upper/*8*/))) { /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1); /*]*/ r238indent(((T238*)(oBC364fmt))); /*IF*/if (!(r238zen_mode(((T238*)(oBC364fmt))))) { r238skip(((T238*)(oBC364fmt)),1); } /*FI*//*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(1); /*]*/ r348pretty_print(((T348*)(r608item(((T608*)((((T699*)C))->_list/*8*/)),_i)))); _i=(_i)+(1); } } /*FI*/} /*No:CLASS_INVARIANT.list*/ /*No:CLASS_INVARIANT.current_type*/ /*No:CLASS_INVARIANT.header_comment*/